<?php
/*
 * Enfermedad DAL.
 * @Autor: Andrés Ubilla.
 */
class EnfermedadDAL {
    
    public static function grabar($oEnfermedad){
        try{
            $arr = array(
                        "{#ID}" => $oEnfermedad->getId(),
                        "{#NOMBRE}" => $oEnfermedad->getNombre(),
                        "{#ESTADO}" => $oEnfermedad->getEstado()
                    );
            $query = Util::getQuery($arr, EnfermedadSQL::$GRABAR_ENFERMEDAD);
            $arrDatos = Bd::exec($query);
            
            $id = Bd::$IDENTITY;
            return $id;
        }  catch (Exception $e){
            throw new Exception($e->getMessage());
        }
    }
    
    public static function listar($oEnfermedad) {
        try {
            $arr = array(
                        "{#ID}" => $oEnfermedad->getId(),
                        "{#NOMBRE}" => $oEnfermedad->getNombre(),
                        "{#ESTADO}" => $oEnfermedad->getEstado()
                    );
            $query = Util::getQuery($arr, EnfermedadSQL::$LISTAR_ENFERMEDADES);

            $arrDatos = Bd::exec($query);
            $arrEnfermedades = array();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {
                    $oEnfermedad = new Enfermedad();
                    
                    $oEnfermedad->setId(is_null($row["id"]) ? 0 : $row["id"]);
                    $oEnfermedad->setNombre(is_null($row["nombre"]) ? "" : $row["nombre"]);

                    $arrEnfermedades[] = $oEnfermedad;
                }
            }

            return $arrEnfermedades;
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }
    
    public static function eliminar($id) {
        try {
            $arr = array("{#ID}" => $id);
            $query = Util::getQuery($arr, EnfermedadSQL::$ELIMINAR_ENFERMEDAD);
            $arrDatos = Bd::exec($query);
            
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }
    
    //METODO PARA OBTENER POR ID ENFERMEDADES.
    public static function obtenerPorId($id){
        try{
            $arr = array(
                        "{#ID}" => $id
                );
            $query = Util::getQuery($arr, EnfermedadSQL::$OBTENER_ENFERMEDAD_POR_ID);
            $arrDatos = Bd::exec($query);

            if (count($arrDatos) > 0) {
                $oEnfermedad = new Enfermedad();

                foreach ($arrDatos as $row) {
                    $oEnfermedad->setId($row["id"]);
                    $oEnfermedad->setNombre($row["nombre"]);
                    $oEnfermedad->setEstado($row["estado"]);
                }
                
                return $oEnfermedad;
            }                        

        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }
    
    //METODO PARA EDITAR ENFERMEDADES.
    public static function editar($oEnfermedad){
        try{
            $arr = array(
                    "{#ID}" => $oEnfermedad->getId(),
                    "{#NOMBRE}" => $oEnfermedad->getNombre(),
                    "{#ESTADO}" => $oEnfermedad->getEstado()
            );
            $query = Util::getQuery($arr, EnfermedadSQL::$EDITAR_ENFERMEDAD);
            $arrDatos = Bd::exec($query);

        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }
}
?>
